#include<stdio.h>

#include<ctype.h>
#include<conio.h>
#include <dirent.h>
#include <time.h>

#include "graphique.h"
#include "utilisateur.h"


void modifier_contenu_fichier_utilisateur(utilisateur u)
{
    FILE *f_origine,*f_temp;
    utilisateur t;
    f_origine=fopen("./fichiers_application/utilisateurs.txt","r");
    f_temp=fopen("./fichiers_application/temp_utilisateurs.txt","w");
     while(!feof(f_origine))
        {
            fscanf(f_origine,"%s %s %d %f %d",t.pseudo,t.mot_passe,&t.avatar,&t.score,&t.nb_acces);
            if(strcmp(t.pseudo,u.pseudo)==0)
            {
            fprintf(f_temp,"%s %s %d %f %d",t.pseudo,t.mot_passe,t.avatar,t.score,((t.nb_acces)+1));
            }
            if(strcmp(t.pseudo,u.pseudo)!=0)
            {
            fprintf(f_temp,"%s %s %d %f %d",t.pseudo,t.mot_passe,t.avatar,t.score,t.nb_acces);
            }

        }
    fclose(f_origine);
    fclose(f_temp);
    remove("./fichiers_application/utilisateurs.txt");
    rename("./fichiers_application/temp_utilisateurs.txt","./fichiers_application/utilisateurs.txt");

}


void modifier_contenu_fichier_utilisateur_score(utilisateur u,float score)
{
    FILE *f_origine,*f_temp;
    utilisateur t;
    f_origine=fopen("./fichiers_application/utilisateurs.txt","r");
    f_temp=fopen("./fichiers_application/temp_utilisateurs.txt","w");
     while(!feof(f_origine))
        {
            fscanf(f_origine,"%s %s %d %f %d",t.pseudo,t.mot_passe,&t.avatar,&t.score,&t.nb_acces);
            if(strcmp(t.pseudo,u.pseudo)==0)
            {
            fprintf(f_temp,"%s %s %d %f %d",t.pseudo,t.mot_passe,t.avatar,(t.score+score),t.nb_acces);
            }
            if(strcmp(t.pseudo,u.pseudo)!=0)
            {
            fprintf(f_temp,"%s %s %d %f %d",t.pseudo,t.mot_passe,t.avatar,t.score,t.nb_acces);
            }

        }
    fclose(f_origine);
    fclose(f_temp);
    remove("./fichiers_application/utilisateurs.txt");
    rename("./fichiers_application/temp_utilisateurs.txt","./fichiers_application/utilisateurs.txt");

}

void inscription()
{
    FILE *f;
    utilisateur t;
    int test=0,avatar;
    char nouveau[15]="",passe[15]="";
    move_cursor(15, 18);
    color_console(14, 0);
    printf("!Veuillez ne pas utliser le bouton ESPACE lors de la saisie!");
    move_cursor(15, 25);
    color_console(12, 0);
    printf("Veuillez saisir un pseudo (ne depassant pas 15 caracteres):");
    move_cursor(34, 26);
    color_console(15, 0);
    change_cursor(100, 1);
    scanf("%s",nouveau);
    f=fopen("./fichiers_application/utilisateurs.txt","r");
    if (f!=NULL)
    {
        while ((!feof(f))&&(test==0))
            {
                fscanf(f,"%s %s %d %f %d",t.pseudo,t.mot_passe,&t.avatar,&t.score,&t.nb_acces);
                if (strcmp(t.pseudo,nouveau)==0)
                {
                test=1;
                }
            }
            fclose(f);
                if (test==1)
                    {
                    system("cls");
                    move_cursor(30, 25);
                    color_console(10, 0);
                    printf("Joueur existant!!! ");
                    move_cursor(14, 27);
                    printf("Veuillez ne pas choisir un pseudo deja utilise.");
                    move_cursor(8, 29);
                    printf("Pour en savoir plus,veuillez consulter la liste des joueurs inscrits.");
                    }
                else
                    {
                    system("cls");
                    move_cursor(15, 25);
                    color_console(12, 0);
                    printf("Veuillez saisir un mot de passe (ne depassant pas 15 caracteres):");
                    move_cursor(34, 26);
                    color_console(15, 0);
                    change_cursor(100, 1);
                    scanf("%s",passe);
                    system("cls");
                    do
                    {
                        move_cursor(15, 25);
                    color_console(12, 0);
                    printf("Veuillez choisir votre avatar : ");
                    move_cursor(15, 27);
                    color_console(12, 0);
                    printf("ecrire 1  : triangulaire.");
                     move_cursor(15, 29);
                    color_console(12, 0);
                    printf("ecrire 2  : rectangulaire.");
                     move_cursor(15, 31);
                    color_console(12, 0);
                    printf("ecrire 3  : circulaire.");
                        move_cursor(34, 34);
                    color_console(15, 0);
                    change_cursor(100, 1);
                    scanf("%d",&avatar);
                    system("cls");
                    }
                    while((avatar<1)||(avatar>3));
                    system("cls");

                    f=fopen("./fichiers_application/utilisateurs.txt","a");
                    fprintf(f,"%s %s %d 0 0",nouveau,passe,avatar);
                    system("cls");
                    move_cursor(20, 25);
                    color_console(10, 0);
                    printf("Inscription reussie! Felicitation!");
                    move_cursor(22, 27);
                    printf("Allez Jouer tout de suite :-)");
                    fclose(f);
                    }

    }
    else
    {
        system("cls");
        move_cursor(20, 25);
        color_console(10, 0);
        printf("erreur");
    }
}

int verification_joueur_inscrit(utilisateur *u)
{
    FILE *f;
    char pseudo[15],passe[15],question_inscription[1];
    move_cursor(10, 18);
    color_console(14, 0);
    printf("!Veuillez ne pas utliser le bouton ESPACE lors de la saisie!");
    move_cursor(15, 25);
    color_console(12, 0);
    printf("Etes-vous inscrits dans ESPRIT-KAKURO (o/n): ");
    change_cursor(100, 1);
    color_console(15,0);
    scanf("%s",question_inscription);
    if(strcmp(question_inscription,"n")==0)
    {
        system("cls");
        move_cursor(30, 28);
        color_console(10, 0);
        printf("Veuillez vous inscrire!!! ");
        getch();
        return 0;
    }
    if(strcmp(question_inscription,"o")==0)
    {
        f=fopen("./fichiers_application/utilisateurs.txt","r");
        if (f!=NULL)
        {
        system("cls");
        move_cursor(10, 25);
        color_console(12, 0);
        printf("Veuillez saisir votre pseudo(ne depassant pas 15 caracteres):");
        move_cursor(34, 27);
        color_console(15, 0);
        change_cursor(100, 1);
        scanf("%s",pseudo);
        move_cursor(10, 29);
        color_console(12, 0);
        printf("Veuillez saisir votre mot de passe(ne depassant pas 15 caracteres):");
        move_cursor(34, 31);
        color_console(15, 0);
        change_cursor(100, 1);
        scanf("%s",passe);
        while(!feof(f))
        {
            utilisateur t;
            fscanf(f,"%s %s %d %f %d",t.pseudo,t.mot_passe,&t.avatar,&t.score,&t.nb_acces);
            if(strcmp(t.pseudo,pseudo)==0)
            {
                if(strcmp(t.mot_passe,passe)!=0)
                {
                    system("cls");
                    move_cursor(30, 25);
                    color_console(10, 0);
                    printf("Erreur : Mot de passe errone!!! ");
                    fclose(f);
                    getch();
                    return 0;
                }
                if(strcmp(t.mot_passe,passe)==0)
                {
                    *u=t;
                    fclose(f);
                    return 1;
                }
            }
        }
        system("cls");
        move_cursor(30, 25);
        color_console(10, 0);
        printf("Erreur : Utilisateur inexistant!!! ");
        move_cursor(30, 27);
        printf("veuillez vous inscrire!!!");
        getch();
        fclose(f);
        return 0;
        }
        else
        {
            system("cls");
            move_cursor(30, 25);
            color_console(10, 0);
            printf("Erreur de lecture du fichier utilisateur!!! ");
            getch();
            fclose(f);
            return 0;
        }

    }
    if ((strcmp(question_inscription,"n")!=0)&&(strcmp(question_inscription,"o")!=0))
    {
        system("cls");
        move_cursor(12, 25);
        color_console(10, 0);
        printf("Erreur : vous n avez saisi ni (o) pour oui ni (n) pour non!!! ");
        getch();
        return 0;
    }
    return 0;
}
